home *** CD-ROM | disk | FTP | other *** search
/ HTBasic 9.3 / HTBasic 9.3.iso / LgcyPlus / disk2 / PUSHBTN._ / PUSHBTN.
Encoding:
Text File  |  2001-03-02  |  1.3 KB  |  47 lines

  1. 10    ! ************************************************
  2. 20    ! Example: PUSHBUTTON Widget
  3. 30    !
  4. 40    ! This program generates a PUSHBUTTON widget with
  5. 50    ! three states. Each time the button is pressed, the
  6. 60    ! display cycles through Label ONE, Label TWO, and
  7. 70    ! Label THREE, and the associated state (0, 1, or 2).
  8. 80    ! is displayed.
  9. 90    !
  10. 100   ! ************************************************
  11. 110   !
  12. 120   DIM L$(1:3)[50]
  13. 130   INTEGER D(1:4),Dw,Dh,Bh,Bw,Bx,By,N
  14. 140   DATA "Label ONE","Label TWO","Label THREE"
  15. 150   READ L$(*)
  16. 160   !
  17. 170   GESCAPE CRT,3;D(*)
  18. 180   Dw=D(3)-D(1)
  19. 190   Dh=(D(4)-D(2))
  20. 200   Bw=128
  21. 210   Bh=Bw/2
  22. 220   Bx=(Dw-Bw)/2
  23. 230   By=(Dh-Bh)/2
  24. 240   !
  25. 250   ASSIGN @Btn TO WIDGET "PUSHBUTTON"
  26. 260   CONTROL @Btn;SET ("TITLE":" Example: PUSHBUTTON Widget")
  27. 270   CONTROL @Btn;SET ("SYSTEM MENU":"Quit")
  28. 280   CONTROL @Btn;SET ("X":Bx/2,"Y":By/2,"WIDTH":2.25*Bw,"HEIGHT":Bh)
  29. 290   CONTROL @Btn;SET ("LABELS":L$(*),"STATES":3)
  30. 300   !
  31. 310   ON EVENT @Btn,"ACTIVATED" GOSUB Handler
  32. 320   ON EVENT @Btn,"SYSTEM MENU" GOTO Finis
  33. 330   !
  34. 340   LOOP
  35. 350     WAIT FOR EVENT
  36. 360   END LOOP
  37. 370   STOP
  38. 380   !
  39. 390 Handler:  !
  40. 400   STATUS @Btn;RETURN ("STATE":N)
  41. 410   DISP "State = "&VAL$(N)
  42. 420   RETURN
  43. 430   !
  44. 440 Finis:  !
  45. 450   ASSIGN @Btn TO *    ! Delete PUSHBUTTON widget
  46. 460   END
  47.